package com.stylefeng.guns.modular.system.service;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.common.constant.factory.PageFactory;
import com.stylefeng.guns.common.persistence.model.Area;
import com.baomidou.mybatisplus.service.IService;
import com.stylefeng.guns.core.node.ZTreeNode;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 省市及手续费配置表 服务类
 * </p>
 *
 * @author stylefeng123
 * @since 2018-01-20
 */
public interface IAreaService extends IService<Area> {

    /**
     * 站内信父类树
     * @return
     */
    List<ZTreeNode> tree();
    /**
     * 地区设置父类树
     * @return
     */
    List<ZTreeNode> areatree();

    /**
     * 通过code显示省市
     * @param code
     * @return
     */
    Area selectByCode(String code);

    /**
     * 查询区域 省/市
     *
     * @return
     */
    public List<Map<String, Object>> selectArea(String pcode);



    List<Map<String,Object>> selectPage(Page page,String condition);

    /**
     * 查询省份
     */
    Area selectName(String name);


    /**
     * 通过省查询市区查询市区
     */
    List<Map<String,Object>> selectSQ(Page<Area> page,String pcode, String name);





    /**
     * 对前端做省市联动
     */
    List<Area> selectProCity(String pcode);

    /**
     * 获取省市名字
     * @param code
     * @return
     */
    String selectNameByCode(String code);

    /**
     * 添加时，查询负类省code
     * @param pcodename
     * @return
     */
    List<Area> selectPcode( String pcodename);


    List<Area> selectAll();

    /**
     * 通过缓存加载
     * @param code
     * @return
     */
    String selectNameByCacheCode(String code);


    void refreshAreaCache();
}
